﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace DokiDokiTest {
    public class FloatComparer : EqualityComparer<float> {
        private readonly float tolerance;

        public FloatComparer (float tolerance) {
            this.tolerance = tolerance;
        }

        public override bool Equals (float x, float y) {
            return (Math.Abs (x - y) < tolerance) ? true : false;
        }

        public override int GetHashCode (float x) {
            return tolerance.GetHashCode ();
        }
    }

    /// <summary>
    /// ユニットテスト専用コンポーネントその１
    /// </summary>
    public class MyTestComponent : DDD.Component {
        
        public int Value { get; set; }

        public void Set1 () { Value = 1; }
        public void Set (int value) { Value = value; }
        public override void OnUpdate (int time) { Value += 1; }
    }

    /// <summary>
    /// ユニットテスト専用コンポーネントその２
    /// </summary>
    /// <remarks>
    /// このクラスは「その１」と全く同じにしておく事
    /// 異なるクラスで同一のメソッドがあった場合正しく処理できることを確認するテストに使用している
    /// </remarks>
    public class MyAnotherTestComponent : DDD.Component {

        public int Value { get; set; }

        public void Set1 () { Value = 1; }
        public void Set (int value) { Value = value; }
        public override void OnUpdate (int time) { Value += 1; }
    }
}
